package com.xty.subject;

import com.xty.observer.Observer;

/**
 * Created By IntelliJ IDEA
 *
 * @author 许腾洋
 * @date 2021/11/22
 * description:抽象被观察者
 */
public interface Subject {
    /**
     * 增加订阅者(观察者)
     *
     * @param observer 观察者
     */
    void attach(Observer observer);

    /**
     * 删除订阅者(观察者)
     *
     * @param observer 观察者
     */
    void detach(Observer observer);

    /**
     * 通知订阅者(观察者)更新消息
     *
     * @param message 被观察者消息
     */
    void notify(String message);

    /**
     * 被观察者自身业务操作
     */
    void operation();
}
